I did it! 沒想到自己可以堅持 30 天不中斷的完成「Android 十全大補」系列文章,身為一個要工作的爸爸,雖然必須每天焦頭爛額地擠出時間,但同時也...
在結束這三十天的旅程前,還有個有趣的主題想跟各位讀者分享 - App Bundle。 App Bundle 顧名思義,App bundle 就是負責開發 app...
當我們有了良好的測試之後,就可以開始建立自動化流程了,Android app 的上架送審其實很繁瑣,雖然有簡單的 web 介面可以使用,但試想每次 releas...
我們講完了一般的 unit test,是時候來測試一些 Android UI 相關的程式了。基本上 UI test 會做以下這幾件事情: 找出某些 View...
介紹完 unit test 之後,大家應該有發現幾乎所有的情境都可以由測試 3A(Arrange、Act、Assert)法則來驗證我們的程式是否正確。 可是如果...
測試是個非常重要的主題,還記得好幾年前,筆者去某大公司面試的時候,其中一題面試題目是: 請說出測試 3A 是哪 3A ? 筆者的表情馬上變成 (A_A),因為...
當我們討論完架構分層後,再來就是具體細節怎麼做的問題了,你可以分成不同的 class,或是放在不同的 package,或是使用我們今天將要介紹的技巧 - mod...
我們介紹了 SOLID、clean architecture、dependency injection 之後,相信大家寫 code 的時候,都會多想二分鐘怎麼讓...
Dagger 的強大跟好處相信大家可以慢慢能體會到,但實務上有時候我們不需要這麼強大的功能,或者是你覺得 dagger 學習曲線太陡了,這時候 koin 可能是...
Dagger 的強大遠遠超過我們昨天介紹的範疇,如果 dagger 基本教學還無法滿足大家實務上的需求,我們今天就更進一步來繼續討論 dagger 還有什麼特別...
前二章我們談了架構分層以後,相信大家對一般程式開發所該有的結構都有了初步的了解,架構的分層是為了隔離依賴,讓程式碼的依賴關係提升變成模組間的關係,那我們該怎麼管...
寫程式就像蓋房子一樣,蓋房子我們必須先有藍圖,再來架鋼筋、上水泥、批土、上油漆,最後才是傢俱跟裝飾。 而架構就像是蓋房子的鋼筋水泥一樣,是整套程式碼的基石,架構...
大家應該有發現我們一天一天往進階的內容邁進,很快我們就要開始談高大上的架構問題了。但是在開始討論如何建構一個好的 Android app 架構之前,想先跟大家分...
我們前一篇提到 Observable 是如何發射資料給 Observer,以及過程中可以透過一連串的 operator 來不斷的修改 Observable 本身...
我們在這幾篇文章中時不時的會提到 RxJava 可以跟哪個 library 搭配使用,究竟是怎樣厲害的工具會讓像 Retrofit、Room 等 library...
前幾天我們學到了如何使用 api 獲取資料,取得了資料以後有時候我們會想要把它存起來讓之後使用可以更快速,這個時候我們就必須學習如何存資料了。 儲存資料有好幾種...
Annotation Processing 顧名思義就是在 compile 的時候 process 我們的 annotation,然後可以依據這些資訊自動產生一...
annotation 是種可以加註在程式碼物件上的一種標記物件(metadata of code),是的,聽起來非常單純,相信大家每天都會使用到但卻幾乎忘了它的...
我想大家應該也厭倦一直講 View 的部份了吧,雖然說身為 App 工程師 UI 是非常重要的但的確有其他面向也必須學習,今天我們來提一下怎麼在手機上優雅的做連...
Fragment 如果前面十篇都看完的話,對於 UI 的掌握度應該就沒什麼問題了,就算是不同的 View、Activity,大致上也都能運用一樣的概念。但在 A...
我們上一篇介紹了 RecyclerView 的基本使用,但是實務上可能會有更進階的需求,比如說我們可以要取得點擊某一個子 View 的事件,或是我們每個子 Vi...
RecyclerView 也是一個非常特別值得獨立一篇來介紹的 ViewGroup,幾乎每種 app 都會有列表式的資料,無論是 Facebook 的 feed...
當我們回頭看我們的 helloworld 範例,會發現我們一直略過一個出現蠻多次的 View 沒有介紹,那就是 ConstraintLayout。 Constr...
Activity 除了可以跟使用者互動以外,也可以跟其他的 Activity 互動。我們今天就來介紹一下 Activity 之間如何呼叫。 AndroidMan...
我們不希望我們的 app 只是固定的畫面,所以我們必須要得到使用者的輸入然後做些動態改變。在 app 的世界裡,不外乎是點擊、滑動或是鍵盤的輸入或是其他感應器所...
上一篇我們解釋了 View 之間的關係跟結構。但 xml 的結構有個先天的限制,就是它雖然很適合描述靜態的巢狀結構但卻無法依據條件動態改變自己。這也是為什麼我們...
上一篇我們提到 Android app 開發主要的時間都會花在 java/、res/ 與 AndroidManifest.xml,我們就先來看看 res/ 下有...
在上一章節中我們建立了第一個 Android 專案,本篇我們會一一介紹每個檔案的作用。 如果從根目錄 dump 出所有檔案你會得到類似以下的結果。 ├── My...
Android Studio 身為一個 Android 開發者,第一個要接觸的就是官方的 IDE - Android Studio 了。Android Stud...
2019 是個非常特別的一年,Android 捨棄了以甜點命名 OS 版本,回歸數字以 Android 10 推出第十個版本(身為從 Cupcake 開始接觸的...